$sourceDirectory = "."
$destinationZip = "sys-y-compiler.zip"

# 获取源目录下的所有文件和目录
$items = Get-ChildItem -Path $sourceDirectory

# 初始化要压缩的项目列表
$itemsToCompress = @()

# 遍历每个项目并应用排除和保留逻辑
foreach ($item in $items) {
    if ($item.PSIsContainer) {
        # 如果是目录，排除指定的目录
        if ($item.Name -notin @(".git", ".idea", "BATS", "out")) {
            $itemsToCompress += $item.FullName
        }
    } else {
        # 如果是文件，只保留指定的文件
        if ($item.Name -in @("Compiler.java", "output.txt", "testfile.txt", "error.txt", "llvm_ir.txt", "config.json")) {
            $itemsToCompress += $item.FullName
        }
    }
}

# 使用 Compress-Archive 命令压缩筛选后的项目
Compress-Archive -Path $itemsToCompress -DestinationPath $destinationZip -Update
